/**
* ToDo:
* - Apache POI entlocken, wie man Charts erstellt (kann es, allerdings noch im Beta Stadium und deshalb gar nicht (bzw. sehr schlecht) dokumentiert) *
*/
// Java Libs
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.csvreader.CsvWriter;
public class Convert2X implements Names{
// quantity of layer
private static int quanLayer = 4;
// head titles
private static String[] titles = {"Turn/Zeit", EB_SECURITY, EB_FUN, EB_SOZIOLOGY, EB_PRODUCTIVITY};
public static void Convert2Excel(List<Map<String,Double>> data, String filename) throws Exception
{
// Create new Workbook with Excel 2007 format
Workbook wb = new XSSFWorkbook();
// Create new sheet for data
Sheet sheet = wb.createSheet("Data");
// Header row
Row headerRow = sheet.createRow(0);
for (int i = 0; i < titles.length; i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue(titles[i]);
}
// Copy data into sheet
Row row;
Cell cell;
int rownum = 1;
for(int i = 0; i < data.size(); i++, rownum++)
{
row = sheet.createRow(rownum);
if(data.get(i) == null) continue;
for (int j = 0; j < quanLayer + 1; j++)
{
double value = 0;
switch(j)
{
case 0:
value = i + 1.0;
break;
case 1:
value = data.get(i).get(EB_SECURITY);
break;
case 2:
value = data.get(i).get(EB_FUN);
break;
case 3:
value = data.get(i).get(EB_SOZIOLOGY);
break;
case 4:
value = data.get(i).get(EB_PRODUCTIVITY);
break;
}
cell = row.createCell(j);
cell.setCellValue(value);
}
}
// Write the output to a file
FileOutputStream out = new FileOutputStream(filename);
wb.write(out);
out.close();
}
public static void Convert2CSV(List<Map<String,Double>> data, String filename) throws IOException
{
CsvWriter writer = new CsvWriter(filename, ',', Charset.forName("ISO-8859-1"));
// Header row
for (int i = 0; i < titles.length; i++) {
writer.write(titles[i]);
}
writer.endRecord();
// copy data
for(int i = 0; i < data.size(); i++)
{
if(data.get(i) == null) continue;
for (int j = 0; j < quanLayer + 1; j++)
{
double value = 0;
switch(j)
{
case 0:
value = i + 1.0;
break;
case 1:
value = data.get(i).get(EB_SECURITY);
break;
case 2:
value = data.get(i).get(EB_FUN);
break;
case 3:
value = data.get(i).get(EB_SOZIOLOGY);
break;
case 4:
value = data.get(i).get(EB_PRODUCTIVITY);
break;
}
writer.write(String.valueOf(value));
}
// new line
writer.endRecord();
}
// save csv data
writer.close();
}
}